/*
 * 
 * 
 * 
 */
package com.hboxs.asl;

import org.apache.lucene.document.Document;
import org.apache.lucene.document.NumericField;
import org.hibernate.search.bridge.LuceneOptions;
import org.hibernate.search.bridge.builtin.NumericFieldBridge;

import java.math.BigDecimal;

/**
 * BigDecimal类型转换
 */
public class BigDecimalNumericFieldBridge extends NumericFieldBridge {

    /**
     * 获取BigDecimal对象
     *
     * @param name     名称
     * @param document document
     * @return BigDecimal对象
     */
    public Object get(String name, Document document) {
        return new BigDecimal(document.getFieldable(name).stringValue());
    }

    /**
     * 设置BigDecimal对象
     *
     * @param name          名称
     * @param value         值
     * @param document      document
     * @param luceneOptions luceneOptions
     */
    @Override
    public void set(String name, Object value, Document document, LuceneOptions luceneOptions) {
        if (value != null) {
            Integer decimalValue = (Integer) value;
            NumericField field = new NumericField("price");
            field.setOmitNorms(true);
            field.setIntValue(decimalValue);
            document.setBoost(5.0f);
            document.add(field);
//			luceneOptions.addNumericFieldToDocument(name, decimalValue.intValue(), document);
//			luceneOptions.addFieldToDocument(name, String.valueOf(decimalValue.doubleValue()), document);
        }
    }
}